#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
struct print{
	int time=0;
	vector<int> task;
};
struct s{
	int ys;
	int bh;
};
bool comp(s x,s y){
	return x.ys>y.ys;
}
int main(){
	int n,k;
	cin>>n>>k;
	print c[k];
	s a[n];
	for(int i=0;i<n;i++){
		cin>>a[i].ys;
		a[i].bh=i;
	}
	stable_sort(a,a+n,comp);
	int b=0;
	int mini=0;
	while(b!=n){
		mini=0;
		for(int i=0;i<k;i++){
			if(c[i].time<c[mini].time){
				mini=i;
			}
		}
		c[mini].time+=a[b].ys;
		c[mini].task.push_back(a[b].bh+1);
		b++;
	}
	for(int i=0;i<k-1;i++){
		sort(c[i].task.begin(),c[i].task.end());
		for(int j=0;j<c[i].task.size()-1;j++){
			cout<<c[i].task[j]<<" ";
		}
		cout<<c[i].task[c[i].task.size()-1]<<endl;
	}
	sort(c[k-1].task.begin(),c[k-1].task.end());
	for(int j=0;j<c[k-1].task.size()-1;j++){
		cout<<c[k-1].task[j]<<" ";
	}
	cout<<c[k-1].task[c[k-1].task.size()-1];
}
